The present invention relates to the field of circuit testing and, in particular, to a technique for logically partitioning a scan chain into smaller chains to reduce the test application time during a Built-In-Self-Test (BIST) while still allowing full scan chain testing when desired.
Integrated circuits (IC""s) generally comprise a large number of individual circuit elements which may be combinational in nature, such as a gate, or sequential in nature, such as flip-flops. IC""s are tested to ensure that the component is defect free after being manufactured and/or remains in proper working condition during use. Testing of both the combinational and sequential elements of an IC may be accomplished by applying a test pattern (often called a xe2x80x9ctest vectorxe2x80x9d) to stimulate the inputs of the circuit and monitoring the output response to detect the occurrence of faults. The test patterns may be applied to the circuit using an external testing device. Alternatively, the test pattern may be generated by a BIST structure comprising part of the internal circuitry of the IC.
Test pattern generation is a relatively simple task for combinational circuit elements. However, for sequential circuit elements, test pattern generation is much more complex because it is necessary to propagate known values from element to element (e.g. from one flip-flop to the next) over time. Although it is desirable when testing the circuit to use exhaustive testing by checking the circuit output response to all possible input permutations (e.g., 2n inputs for n input variables), this approach becomes impracticable as the number of input variables increases. Thus, a related technique, referred to as pseudo-random testing, is employed when the number of input variables is so large that it becomes impracticable to use an exhaustive testing approach. Pseudo-random testing is an alternative technique that generates test patterns in a random fashion from all of the possible patterns. In this approach, fewer than all of the possible patterns are tested. Because of the relatively low hardware overhead and the simplicity of test pattern generation, pseudo-random testing is a preferred technique for BIST. Practical circuits, however, often contain random pattern resistant faults which result in unacceptable low fault coverages for a reasonable test length. Under these circumstances the testability of the circuit may be improved by inserting test points into the circuit.
A technique called partial-scan testing is described in U.S. Pat. No. 5,034,986 (Agrawal et al.), incorporated by reference herein. Partial-scan testing involves partitioning of the circuit so that selected sequential elements in the circuit are arranged as a shift register. The circuit is initially placed in a test mode and a known stream of test data is shifted into the shift register. Thereafter, the IC is placed in its normal operating mode so as to react to the test data. Finally, the IC is returned to the test mode and the test data, modified by the operation of the IC, is shifted out from the shift register for comparison to a reference data stream.
An improved form of partial-scan testing is disclosed in U.S. Pat. No. 5,329,533 to Lin, which is incorporated herein by reference. In this development, the testing of the IC is improved by the addition of BIST circuitry, including a test pattern generator and a response analyzer (a compactor). Self-looping non-scan flip-flops in the circuit are replaced with initializable flip-flops so that the IC can be set to an initial state prior to testing to obtain a deterministic signature.
The scan chains for testing an IC can be thousands of elements long. Typically the time required to shift a test pattern into a single flip-flop is one cycle, and the time required to shift a test pattern out of a flip-flop is also one cycle. Thus, an IC with 1,000 elements would take 1,000 cycles to shift in the test vectors and an additional 1,000 cycles to shift them out.
In the past it has been known to use parallel chains to reduce the size of the shift registers. For example, instead of using a 1,000 bit shift register, two parallel 500 bit shift registers could be simultaneously loaded. Since each scan chain is shorter, the testing time will also be shorter. However, due to the constraints imposed by Automatic Test Equipment (ATE), available input/output pins, etc., the number of scan chains that can be used has to be limited. Thus, if an IC design is limited to use, for example, only 4 scan chains, and the total number of flip-flops is 20,000, each scan chain will still be 5000 elements long.
FIG. 1 illustrates a scan-based BIST structure in accordance with the prior art. As shown in FIG. 1, the scan-based BIST structure includes a test pattern generator 10 which supplies random patterns to the primary inputs 15 of the IC for supplying test vectors to the combinational elements 20 of the IC. In addition, the test pattern generator 10 also supplies random patterns, via a scan chain 21 comprising flip-flops F1-Fn, to pseudo-inputs 22 of combinational elements 20 (via outputs 24 of the scan flip-flops F1-Fn). Data from the primary outputs 30 of the IC and via the scan chain 21, from pseudo-outputs 26 of the combinational elements 20 (via the inputs 28 of the flip-flops F1-Fn) are output to a response analyzer 35 such as a multiple input signature register (MISR).
To begin testing, the IC is placed in a test mode during which the bits of a test vector are latched from test pattern generator 10 into the scan chain 21 via the first flip-flop F1 in the scan chain 21. After the test data is entered, the IC is returned to a non-test mode during which the combinational elements 20 respond to the previously received test data in their usual manner. A predetermined period of time later, the test mode is re-entered and the response of the combinational elements 20 to the data entered via the scan chain is output to the scan chain 21 via pseudo-outputs 28 and captured in the flip-flop F1-Fn. The captured data is then output to the response analyzer 35 where it is compacted.
The response analyzer 35 serves to compact output data generated by the combinational elements 20 with the captured data output from the scan chain 21 and compares the two to yield a deterministic signature which is descriptive of the entire circuit. By comparing the signature of the system with that for a fault-free system, the existence or absence of defects will be revealed.
One or more test points, e.g., control points and/or observation points, may be inserted into the circuit under test to improve the fault coverage as described in U.S. Pat. No. 5,450,414 to Lin, incorporated herein by reference. The observation points improve the ability to observe errors in the system.
Although it is feasible and desireable to have multiple scan chains of smaller sizes in a BISTed design, if the design also needs to be tested using deterministic scan vectors the number of scan chains may need to be restricted for the previously-explained reasons. Hence, it is desirable to have a feature in the BIST design such that in the BIST mode the scan chains can be configured into multiple parallel scan chains of smaller sizes, whereas in the deterministic scan test mode they can be configured into few number of scan chains as dictated by the external constraints. The prior art lacks this capability. The present invention solves this problem.
Briefly, in accordance with the invention, a technique is provided for testing an IC which includes a plurality of flip-flops. The flip-flops are arranged in at least one scan chain. The testing technique of the invention is practiced by selectively partitioning the scan chain into smaller scan chains so that the smaller chains can be simultaneously latched and provide test results. The scan chain is switchable between a partitioned and a non-partitioned configuration, so that either configuration can be selected on demand, thereby allowing both BIST and deterministic testing to be performed efficiently on the same circuit.
In a preferred embodiment, the present invention comprises a test system for testing an integrated circuit, the test system including a plurality of flip-flops arranged in a scan chain to effectuate scan testing of the integrated circuit and comprising a first stage including at least one of said flip-flops; a second stage including at least another one of said flip-flops; a switch coupled between the first stage and the second stage; a memory register storing a plurality of random test vectors for input to the scan chain, to the switch, and to the integrated circuit; and a response analyzer coupled to the integrated circuit for compacting the response generated by the integrated circuit with bits shifted out of the first and second stages. In a more preferred embodiment, the switch comprises an exclusive-OR gate, and the exclusive-OR gate includes a first input coupled to an output of the first stage, a second input coupled to the memory register, and an output coupled to the input of the second stage. The first stage includes an observation point coupled to the response analyzer to route the output of the first stage to the response analyzer.